package com.yixun.qfbao.api.service;

import com.yixun.qfbao.apidto.*;
import com.yixun.qfbao.model.RoleResources;

import java.util.List;

/**
 * @author guifang.weng
 * @create 2017-11-23 11:38
 **/
public interface RoleResourcesService {

    /**
     * 获取角色授权资源列表
     * @param getAuthorizeRoleListReqDto
     * @return
     * @throws Exception
     */
    GetAuthorizeRoleListResDto getAuthorizeRoleList(GetAuthorizeRoleListReqDto getAuthorizeRoleListReqDto) throws Exception;

    /**
     * 获取分销角色授权资源
     * @param getAuthorizeRoleListReqDto
     * @return
     */
    AgencyRoleAuthResourcesResDto getAgencyRoleAuthResources(GetAuthorizeRoleListReqDto getAuthorizeRoleListReqDto);

    /**
     * 角色授权
     * @param authorizeRoleReqDto
     * @return
     * @throws Exception
     */
    AuthorizeRoleResDto authorizeRole(AuthorizeRoleReqDto authorizeRoleReqDto) throws Exception;

    /**
     * 角色授权获取角色权限
     * @param getAuthorizeRoleListReqDto
     * @return
     * @throws Exception
     */
    GetAuthorizeRoleListResDto getAuthorizeRoleListForDeveloper(GetAuthorizeRoleListReqDto getAuthorizeRoleListReqDto)throws Exception;

    /**
     * 根据roleId 查询是否有权限
     *
     * @param roleId
     * @param resourcesCodes
     * @return
     */
    List<RoleResources> listRoleResources(Long roleId, List<String> resourcesCodes);
    
    /**
     * 将待确认权限刷入到报备待审和到访待审中
     *
     */
    void refreshVisitAuthority(String companyId);


}
